Flink系列Table API和SQL之:时间属性
全部标签 我为我的应用程序创建了一个自定义记录器,称为CRON_LOG,只需将这段代码添加到config/environment.rbCRON_LOG=Logger.new("#{Rails.root}/log/cron.log")CRON_LOG.level=Logger::INFO然后,当我想记录一些东西时,就这样做:CRON_LOG.info"something"它工作正常,但我想在每条日志消息之前添加当前时间戳。当然,我可以将Time.now添加到我的日志消息中,但我想知道是否有一种方法可以将它作为默认值添加到每条日志消息中。我该怎么做?谢谢。 最佳答案
我想写一个简单的函数来表示几个小时:创建后经过了多长时间?我的尝试:-time=DateTime.now.hour-(self.created_at.hour)有人知道如何在RubyonRails中执行此操作吗? 最佳答案 Rails通常使用Time,而不是DateTime。你为什么不做Time.now-self.created_at?然后您可以通过除以3600从秒转换为小时。 关于ruby-on-rails-你如何从日期时间中减去?,我们在StackOverflow上找到一个类似的问题
如何将10:30之类的时间转换为秒?是否有某种内置的Ruby函数来处理这个问题?基本上是试图计算出从午夜(00:00)到一天中特定时间(例如10:30或18:45)的秒数。 最佳答案 您可以使用DateTime#parse将字符串转换为DateTime对象,然后将小时乘以3600,将分钟乘以60以获得秒数:require'date'#DateTime.parsethrowsArgumentErrorifitcan'tparsethestringifdt=DateTime.parse("10:30")rescuefalsesecond
使用declarative_authorization按角色保护属性的好方法是什么??例如,用户可以编辑他的联系信息,但不能编辑他的角色。我的第一个想法是为不同的场景创建多个Controller操作。我很快意识到随着protected属性数量的增加,这会变得多么笨拙。为用户角色执行此操作是一回事,但我可以想象多个protected属性。添加很多Controller操作和路由感觉不对。我的第二个倾向是围绕特定的敏感属性创建权限,然后使用declarative_authorizations提供的Viewhepers包装表单元素。但是,在我看来,模型和Controller这方面有点模糊。建议
我在附加数据然后将其添加到数组时遇到了一个小问题。这是我的代码@order.orderdesc||=[]@cart.line_items.eachdo|item|@order.orderdesc+=item.quantity+"x"+item.product.titleend我只想添加item.quantity和item.product.title。可以访问它们。谢谢 最佳答案 如果你想在数组中添加“东西”,+=不是为此而制作的。您可以使用运算符(附加在数组末尾):@order.orderdesc||=[]@cart.line_it
问题:我有一个chef语句,它应该只在属性为“true”时运行。但它每次都会运行。预期行为:当default[:QuickBase_Legacy_Stack][:dotNetFx4_Install]="false"时,不应安装dotnet4。实际行为:无论属性设置为什么,它都会安装dotnet4。我的代码:属性文件:default[:QuickBase_Legacy_Stack][:dotNetFx4_Install]="false"配方文件:windows_package"dotnet4"doonly_ifnode[:QuickBase_Legacy_Stack][:dotNetFx
我正在尝试使用Project.find(id)从Project模型中找到一个项目,但它给了我ActiveRecord::StatementInvalid错误完整跟踪-PG::Error:ERROR:preparedstatement"a1"alreadyexists:SELECTCOUNT(*)FROMpg_classcLEFTJOINpg_namespacenONn.oid=c.relnamespaceWHEREc.relkindin('v','r')ANDc.relname=$1ANDn.nspname=ANY(current_schemas(false))/home/deploy
我有一个对象数组[,,]我需要数组按时间排序,然后按值排序[,,]但是使用sort_by会抛出错误,因为时间为零。我现在正在使用一种丑陋的方式进行排序,但我相信有一个很好的方式来解决这个问题starred=[]@answers.each{|a|(starred 最佳答案 starred.sort_by{|a|[a?1:0,a]}当它必须比较两个元素时,它会比较一个数组。当Ruby比较数组(调用===方法)时,它比较第一个元素,只有当第一个元素相等时才转到第二个元素。?1:0保证,我们将Fixnum作为第一个元素,所以它应该没有错误。
在Ruby中为实例属性创建别名的最佳方法是什么(我没有使用rails或任何rubygem,只是使用Ruby)。例如给定下面的类,我如何为:student_name属性访问器创建别名?classStudentattr_accessor:student_namealias:name:student_name#wrongends=Student.news.student_name="Jordan"putss.name#-->Jordans.name="Michael"#-->NoMethodError:undefinedmethod`name='for#...谢谢大家!
我不会在这里重复我的问题,但是有没有更有效的方式来写这个?defrecruits_namesnames=[]forrinself.referralsdonames 最佳答案 使用map方法:Returnsanewarraywiththeresultsofrunningblockonceforeveryelementinenum.defrecruits_namesself.referrals.map{|r|r.display_name}end[更新]正如Staelen在评论中指出的那样,这个例子可以进一步缩短为:defrecruits